perm filename RLL.HPP[AM,DBL] blob sn#512258 filedate 1980-06-02 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	RLL
C00010 ENDMK
CāŠ—;
RLL
%This is for the HPP brochure

RLL is a language  for building expert programs  quickly. It is itself  an
expert system, whose domain of expertise is knowledge engineering.

Task Description

Often a large AI project begins by designing and implementing a high-level
language in which to easily and precisely specify the nuances of the task.
Such  "representation  languages"  often  are  tailored  to  that  initial
application, and what were  originally useful FEATURES become  undesirable
LIMITATIONS to subsequent users (e.g.,  MOLGEN UNITS' explicit copying  of
facts, lack of  multiple parents; KRL's  sophisticated but slow  matcher).
One remedy is to construct  a representation language oriented not  around
some particular scientific  application task,  but rather  around the  the
field of  representation languages  itself.  This  program could  then  be
tailored to suit any specific task domain.  The RLL effort is constructing
such a Representation Language Language.

Approach

RLL is  akin  to  an  organ  with  stops.   Each  stop  corresponds  to  a
pre-fabricated  representational  part  (such  as  a  kind  of  slot,   an
inheritance mechanism, a control  regime).  The initial  state of the  RLL
system is  simply one  configuration  of this  organ, with  certain  stops
"pulled out"  to mimic  the MOLGEN  UNITS package.   Just as  a  competent
musician can quickly produce a  radically different sound by altering  the
stops of an  organ, so  a system  builder using  RLL can  define his  oown
representation by turning  off some features  and activating others.   For
example, a  devotee  of FRL  may  turn off  Is-A,  SuperSet,  Abstraction,
TypicalExampleOf,  PartOf,  etc.,  leaving  only  the  very  general  slot
A-Kind-Of, which is  their smearing together.   A strict  nonhierarchetect
can  turn  even  A-Kind-Of  off.   The  user  need  not  worry  about  the
ramifications of such changes; this is precisely what RLL is set up to do.
By selectively pushing and pulling, the user should be able to construct a
system resembling one of the  current representation languages (FRL,  KRL,
OWL, KLONE, UNITS,  etc.) or  any other  he can  imagine.  Unlike  musical
organs, RLL also provides  its user with mechanisms  for building his  own
stops, or even for building his own mechanisms for building new stops.

Sources of Power

RLL draws much of its power from knowledge.  It contains codifications  of
knowledge  about   modes  of   property  inheritance,   possible   control
structures, hundreds of  useful kinds of  slots and their  interrelations,
heuristics (including so-called  "meta-rules"), and a  smattering of  very
general  knowledge   (elementary   physics,  mathematics,   biology,   and
epistemology, among other fields).

RLL is completely self-descriptive, and this  is a second major source  of
its power.  Every bit of code is represented within the RLL formalism  (as
units in a frame-like  knowlege net).  This  includes the data  structures
employed,  the   control   structure   of   the   RLL   interpreter,   the
representations used, etc.  Even  he primitive Get  and Put functions  are
represented by full-fledged RLL  units bearing those  names.  Not only  is
RLL self-descriptive, but it is self-modifying.  By changing (editing) the
descriptions of what  a unit is  supposed to do,  the code which  actually
performs those tasks will be altered (by RLL, automatically).

Cognitive Economy  is  another  source of  power.   By  caching  (storing)
efficient translations of the high-level  descriptions of each unit,  most
of the efficiency which would otherwise be lost is recaptured.

Current Status

The RLL system is currently usable,  and we encourage potential new  users
to inquire further.  The self-description of RLL is essentially  complete,
but the system  is far  from completely self-modifying  at present.   Much
more remains to be done in the codification of general knowledge, building
up taxonomies of kinds of inheritance, function invocation, etc.

Staff

The principal investigator of this project is Professor Douglas Lenat.  He
is assisted by two graduate students, Russel Greiner and David E.   Smith,
and via  consultation with  other members  of the  HPP, notably  Professor
Michael Genesereth.

Publications

Genesereth, M. and D. Lenat, "Self-Description and -Modification in a
Knowledge Represetnation Language", HPP Working Paper HPP-80-10, June, 1980.

Greiner, R. and D. Lenat, "A Representation Language Language", 
Proc. 1st AAAI conf., Stanford, August, 1980.

Greiner, R., "RLL: A Representation Language Language", HPP Working Paper
HPP-80-9, CS Dept., Stanford U., June, 1980.

Lenat, D., F. Hayes-Roth, P. Klahr, "Cognitive Economy", Proc. IJCAI-6,
Tokyo, 1979.  Also issued in longer form as HPP-79-15.  

Smith, D. E., "CORLL: A Demand Paging System for Units", HPP Working
Paper HPP-80-8, June, 1980.